#pragma once

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <stdbool.h>

typedef int LTDateType;

typedef struct ListNode
{
	struct ListNode* prev;
	struct ListNode* next;
	LTDateType val;
}ListNode;

ListNode* ListInit();
void ListPrint(ListNode* head);

void ListPushBack(ListNode* head, LTDateType x);
void ListPushFront(ListNode* head, LTDateType x);
void ListPopBack(ListNode* head);
void ListPopFront(ListNode* head);

void ListInsert(ListNode* head, LTDateType x);
void ListErase(ListNode* head);
bool ListEmpety(ListNode* head);
